package com.sinosoft.brokerchannel.base.utile;

import lombok.Getter;
import lombok.Setter;

/**   
  *  
  * 需求名称:
  * @see [系统主动抛出异常类]
  * @author [@user] wem
  * @date [2017年9月25日 下午2:19:58]
  * @version [v1.0]
  */
public class BusinessException extends Exception {

	/** 错误代码  **/
	@Getter
	@Setter
	private String exceptionCode;

	/** 返回信息  一般为e.enterMessage(),请不要全部写死，否则不知道是什么异常  **/
	@Getter
	@Setter
	private String exceptionMessage;

	/** 交互唯一标识 **/
	@Getter
	@Setter
	private String uuid;

	/** 接口名称 **/
	@Getter
	@Setter
	private String serviceName;

	/** 合作伙伴编码 **/
	@Getter
	@Setter
	private String companyCode;

///	/** 加密种子 **/
///	@Getter
///	@Setter
///	private String seed;

	/** 访问者的IP **/
	@Getter
	@Setter
	private String requestIp;

	/** 异常 **/
	@Getter
	@Setter
	private Exception e;


	public BusinessException(String code, String message) {
		super(message);
	}

	/**
	 *
	 * @param code  错误代码
	 * @param message 错误信息 为异常概要，比如报文转换异常等
	 * @param e   捕获的异常信息
	 */
	public BusinessException(String code, String message, Exception e) {
		this.exceptionCode = code;
		this.exceptionMessage = message;
		this.e = e;
	}

	/**
	 *
	 * @param code  错误代码
	 * @param message 错误信息 为异常概要，比如报文转换异常等
	 * @param e   捕获的异常信息
	 */
	public BusinessException(String code, String message,String uuid, String serviceName,
							 String companyCode, Exception e) {

		this.exceptionCode = code;
		this.exceptionMessage = message;
		this.uuid = uuid;
		this.serviceName = serviceName;
		this.companyCode = companyCode;
		this.e = e;
	}
}